package com.qf.service.impl;

import com.qf.dfa.SensitiveWordFilter;
import com.qf.model.StandardSubmit;
import com.qf.service.FilterChainService;
import org.springframework.stereotype.Service;

/**
 * 实现敏感词过滤策略
 *
 * @author lixu
 */
@Service("dirtyWords")
public class DirtyWordFilterServiceImpl implements FilterChainService {
    /**
     * **敏感词过滤 : **提供短信息安全过滤功能，对非法信息和反动信息进行过滤。
     *
     * - 可以先用IK分词对短信发送内容进行分词，然后用分词后的内容依次查询缓存中的敏感词
     *
     * - 如果短信发送内容存在敏感词就把发送日志存到Elasticsearch
     * - 如果同时是HTTP的发送方式就模拟出状态报告推送给客户
     * @param submit
     * @return
     */
    @Override
    public boolean strategy(StandardSubmit submit) {
        //短信内容
        String messageContent = submit.getMessageContent();

        //敏感词过滤器   ES： 我是中国人 我  是 中国  国人  中国人   我  是  中国人
        SensitiveWordFilter sensitiveWordFilter = SensitiveWordFilter.getInstance();
        int i = sensitiveWordFilter.checkSensitiveWord
                (messageContent, 0, SensitiveWordFilter.minMatchType);
        System.out.println("敏感词i:" + i);
        if(i==0){
            //不存在 敏感词
            return true;
        }
        //存在
        return false;
    }
}
